package com.sxu.fighting.day1;

/**
 * 27
 */
public class Test2 {
    // 快慢指针
    public int removeElement(int[] nums, int val) {
        int n = nums.length;      // 数组原始长度
        int left = 0;             // 慢指针：指向下一个有效元素的插入位置
        for (int right = 0; right < n; right++) {  // 快指针：遍历所有元素
            if (nums[right] != val) {   // 发现不等于 val 的元素
                nums[left] = nums[right]; // 将其复制到 left 位置
                left++;                  // 慢指针后移
            }
        }
        return left;  // left 即为新数组长度
    }

    public int removeElement2(int[] nums, int val) {
        int len = nums.length;
        for(int i = 0;i<len;){
            if(nums[i] == val){
                nums[i] = nums[len-1];
                len--;
            } else {
                i ++;
            }
        }
        return len;
    }
}
